package org.example.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.example.common.LoginVo;
import org.example.common.R;
import org.example.pojo.entity.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import org.example.pojo.req.SysUserReq;
import org.example.pojo.vo.UserVo;

/**
* @author 妖妖零
* @description 针对表【sys_user(用户信息表)】的数据库操作Service
* @createDate 2024-05-06 20:44:44
*/
public interface SysUserService extends IService<SysUser> {

    /**
     * 登录
     * @param sysUser
     * @return
     */
//    R login(SysUser sysUser);

    /**
     * 分页获取用户数据
     * @param page
     * @param size
     * @param userName
     * @param phonenumber
     * @param status
     * @param startTime
     * @param endTime
     * @return
     */
    Page<UserVo> pageList(Integer page, Integer size, String userName, String phonenumber, String status, String startTime, String endTime);

    /**
     * 删除用户
     * @param id
     */
    void removeUser(String id);

    /**
     * 添加用户
     * @param sysUser
     */
    R saveUser(SysUserReq sysUser);

    /**
     * 修改用户信息
     * @param userReq
     */
    R editUser(SysUserReq userReq);

    /**
     * 个人中心修改密码
     * @param oldPassword
     * @param newPassword
     * @return
     */
    R resetPassword(String oldPassword, String newPassword);

    /**
     * 根据用户名获取用户信息
     * @param username
     * @return
     */
    SysUser getByUser(String username);

    /**
     * 个人中心用户信息
     */
    R getUserInfos();

    /**
     * 修改个人中心用户信息
     * @param sysUser
     */
    void editUserInfo(SysUser sysUser);

    /**
     * 修改用户上传文件
     * @param contextUserInfo
     */
    void editUserInfoFile(LoginVo contextUserInfo,String url);

    /**
     * 获取用户信息
     * @param userId
     * @return
     */
    R getUserDetail(String userId);
}
